The present invention relates to a software system debugger (SSD).
In order to develop software for a particular CPU, it is important to have debugging tools to find bugs. Normally, if the software is developed for a computer with operating system, many debugging tools are available. However, with a CPU such as TMS34010 (manufactured by Texas Instruments) which is designed to be used to control peripheral devices (CRT and printer), software debugging tools are very limited. One of the reasons for this limitation is that the software must frequently be debugged on the target boards. However, because each board is different, it has been difficult to develop a general purpose debugger.
Some of the major tasks required to debug software are: downloading of the software from the development environment to the target board; executing the software (trace, single instruction, or multiple instructions); setting the breakpoints; displaying the memory contents; displaying the register contents. These tasks can be performed by an emulator such as XDS/22 from Texas Instrument for the TMS34010 chip. The major problem of using the emulator, however, is the cost. (The XDS/22 is relatively expensive.) Because of the cost, software developers tend to own a limited number of the emulators. If the number of emulators is less than the number of software engineers, some of the engineers must wait to debug their program until they can have access to the emulator. One other major problem of XDS/22 is that the size of executable code is limited to a relatively small size (e.g., 128K words). Therefore, the software exceeding 128K words can not be debugged in the straightforward way.
A similar debugging environment is available for the TMS34010 board supplied by Texas Instrument. Although the board with this capability was named as "Software Development Board", application of this debugging environment was limited because of difference between this board and the target board. For example, if the target board has 4M bytes of RAM, 1M bytes of ROM and two serial ports, the target software must be substantially modified to be able to run on the "Software Development Board." The net result is that the software debugged under "Software Development Board" must be debugged on the target board again in order to be fully operational.
In the above debugging arts, a user can not use symbols generated by the compiler and must use addresses which are rather difficult to use.